﻿using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;

namespace WLCompiler.Helpers.SemanticAnalyze
{
    public class Function : UniqueObject
    {
        public Function()
        {}

        public Function(string id, Type type)
            :base(id)
        {
            Type = type;
        }
        
        public Function(string id, Type type, IEnumerable<Variable> arguments)
            :this(id, type)
        {
            Arguments = arguments;
        }

        public Type Type { get; private set; }

        public IEnumerable<Variable> Arguments { get; private set; }

        public MethodBuilder FunctionReference { get; set; }
    }
}